package com.aizuda.boot.modules.business.performance.service;

import com.aizuda.boot.modules.business.contract.dto.SingleResponse;
import com.aizuda.boot.modules.business.filling.domain.request.PageQuery;
import com.aizuda.boot.modules.business.performance.domain.entity.ContractPerformanceEntity;
import com.aizuda.boot.modules.business.performance.domain.request.SavePerformanceDTO;
import com.aizuda.boot.modules.business.performance.domain.request.UpdatePerformanceDTO;
import com.aizuda.boot.modules.business.performance.domain.response.PerformanceShowDTO;
import com.aizuda.boot.modules.business.performance.domain.response.PerformanceShowListDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @Author sangyirong
 * @ClassName ContractPerformanceService
 * @Version 1.0
 * @Date 2025/6/4 16:33
 */
public interface ContractPerformanceService extends IService<ContractPerformanceEntity> {

    /**
     * 创建履约提醒
     *
     * @param dto
     * @return
     */
    SingleResponse<Void> createPerformance(SavePerformanceDTO dto);

    /**
     * 获取履约提醒
     *
     * @param id
     * @return
     */
    SingleResponse<PerformanceShowDTO> getPerformance(Integer id);

    /**
     * 更新履约提醒
     *
     * @param dto
     * @return
     */
    SingleResponse<Void> updatePerformance(UpdatePerformanceDTO dto);

    /**
     * 删除履约提醒
     *
     * @param id
     * @return
     */
    SingleResponse<Void> deletePerformance(Integer id);

    /**
     * 获取履约提醒列表
     *
     * @param pageQuery
     * @return
     */
    SingleResponse<IPage<PerformanceShowListDTO>> getPerformanceList(PageQuery pageQuery);
} 